//
//  DMTabBarController.swift
//  DM_新浪微博
//
//  Created by Damon.JiAo on 16/2/25.
//  Copyright © 2016年 Demon_JiAo. All rights reserved.
//

import UIKit

class DMTabBarController: UITabBarController {

    override func viewDidLoad() {
        
        /** 此处遇到一个问题 */
        /*
         *  "发现"按钮的添加需要特殊处理！！！
         *  解决思路:tabBar.subviews 系统有这个方法 / 重写一个继承UITabbar的类
        *
        */
        
//        tabBar.subviews
         
        /** 定义一个数据自定义类型的TabBar */
        let tabbar = DMTabBar()
        
        /** 相当于给所有继承tabBar的类型全替换成“DMTabBar” */
        setValue(tabbar, forKey: "tabBar") ///????????
        
        /** 给中间属性添加点击事件 */
        tabbar.composeButton.addTarget(self, action: "showPublish", forControlEvents: UIControlEvents.TouchUpInside)
        
        /** 调用添加方法 */
        addChildViewController()
    }
    
    /** 中间按键的点击事件 */
    func showPublish(){
        
        let publish = DMPublishViewController()
        
        let nav = UINavigationController(rootViewController: publish)
        
        presentViewController(nav, animated: true, completion: nil)
        
    }
    
    /** 单独调用添加每一个tabbar */
     func addChildViewController() {
        addChildViewController(DMHomeViewController(), title: "首页", image: "tabbar_home")
        addChildViewController(DMMessageViewController(), title: "消息", image: "tabbar_message_center")
        addChildViewController(DMFindViewController(), title: "发现", image: "tabbar_discover")
        addChildViewController(DMSettingViewController(), title: "设置", image: "tabbar_profile")
        
    }
    
    /** 和上一个函数利用了方法”重载“--完成功能 */
    func addChildViewController(childController: UIViewController,title:String,image:String) {
        
        /** 设置此处的title */
        childController.title = title
        
        childController.tabBarItem.image = UIImage(named: image)
        
        childController.tabBarItem.selectedImage = UIImage(named: "\(image)_highlighted")
        
        /** 将目标函数添加到子控制器中 */
        addChildViewController(UINavigationController(rootViewController: childController))
        
    }
    
}


